﻿// ***********************************************************************
// Assembly         : ResourceOptimizeLibrary
// Author           : ray
// Created          : 12-31-2014
//
// Last Modified By : ray
// Last Modified On : 12-31-2014
// ***********************************************************************
// <copyright file="IOptimize.cs" company="radray">
//     Copyright (c) radray. All rights reserved.
// </copyright>
// <summary></summary>
// ***********************************************************************

using System.Collections.Generic;
using System.Text;

/// <summary>
/// The ResourceOptimizeLibrary namespace.
/// </summary>
namespace ResourceOptimizeLibrary
{
    /// <summary>
    /// Interface IOptimize
    /// </summary>
    internal interface IOptimize
    {
        /// <summary>
        /// Optimizes the specified path.
        /// </summary>
        /// <param name="path">The path.</param>
        /// <param name="encoding">The encoding.</param>
        /// <returns>System.String.</returns>
        string Optimize(string path, Encoding encoding);
        /// <summary>
        /// Optimizes the specified path.
        /// </summary>
        /// <param name="path">The path.</param>
        /// <returns>System.String.</returns>
        string Optimize(string path);
        /// <summary>
        /// Optimizes the specified file list.
        /// </summary>
        /// <param name="fileList">The file list.</param>
        /// <param name="encoding">The encoding.</param>
        /// <returns>System.String.</returns>
        string Optimize(List<string> fileList, Encoding encoding);
        /// <summary>
        /// Optimizes the specified file list.
        /// </summary>
        /// <param name="fileList">The file list.</param>
        /// <returns>System.String.</returns>
        string Optimize(List<string> fileList);
        /// <summary>
        /// Optimizes the by path list.
        /// </summary>
        /// <param name="pathList">The path list.</param>
        /// <param name="encoding">The encoding.</param>
        /// <returns>System.String.</returns>
        string OptimizeByPathList(List<string> pathList, Encoding encoding);
        /// <summary>
        /// Optimizes the by path list.
        /// </summary>
        /// <param name="pathList">The path list.</param>
        /// <returns>System.String.</returns>
        string OptimizeByPathList(List<string> pathList);
        /// <summary>
        /// Optimizes the specified file list.
        /// </summary>
        /// <param name="fileList">The file list.</param>
        /// <param name="encoding">The encoding.</param>
        /// <returns>System.String.</returns>
        string Optimize(string[] fileList, Encoding encoding);
        /// <summary>
        /// Optimizes the specified file list.
        /// </summary>
        /// <param name="fileList">The file list.</param>
        /// <returns>System.String.</returns>
        string Optimize(string[] fileList);
        /// <summary>
        /// Optimizes the by path array.
        /// </summary>
        /// <param name="pathArray">The path array.</param>
        /// <param name="encoding">The encoding.</param>
        /// <returns>System.String.</returns>
        string OptimizeByPathArray(string[] pathArray, Encoding encoding);
        /// <summary>
        /// Optimizes the by path array.
        /// </summary>
        /// <param name="pathArray">The path array.</param>
        /// <returns>System.String.</returns>
        string OptimizeByPathArray(string[] pathArray);
        /// <summary>
        /// Writes the out.
        /// </summary>
        /// <param name="path">The path.</param>
        /// <param name="content">The content.</param>
        /// <param name="encoding">The encoding.</param>
        void WriteOut(string path, string content, Encoding encoding);
        /// <summary>
        /// Writes the out.
        /// </summary>
        /// <param name="path">The path.</param>
        /// <param name="content">The content.</param>
        void WriteOut(string path, string content);
    }
}